package cn.gorit.admin.controller;

import cn.gorit.common.lang.Result;
import cn.gorit.dto.admin.AdminDto;
import cn.gorit.dto.user.LoginDto;
import cn.gorit.entity.admin.Admin;
import cn.gorit.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import cn.gorit.admin.service.AdminService;
/**
 * @version v1.0
 * @Classname AdminController
 * @Description 管理员相关操作的接口
 * @Author Gorit
 * @Created by 2021/3/16 0:30
 * @IDLE IntelliJ IDEA
 **/
@RestController
@RequestMapping("/api/v1/admin")
public class AdminController {

    @Autowired
    private AdminService service;

    // 管理员账号登陆的接口
    @PostMapping("/login")
    public Result<Object> login(@RequestBody LoginDto dto) {
        return service.login(dto);
    }

    // 根据 ID 查询管理员信息的接口
    @GetMapping("/info/{id}")
    public Result<Admin> getAdminInfo(@PathVariable("id") Integer id) {
        return service.getInfoById(id);
    }

    // 修改管理员信息的接口
    @PutMapping
    public Result<Object> updateAdminInfo(@RequestBody AdminDto admin) {
        return service.updateInfo(admin);
    }

    // 添加管理员
    @PostMapping
    public Result<Object> addAdmin(@RequestBody AdminDto admin) {
        return service.addAdmin(admin);
    }

    // 删除管理员
    @DeleteMapping("/{id}")
    public Result<Object> delAdminById(@PathVariable("id") Integer id) {
        return service.delAdminById(id);
    }

    // 分页查询管理员列表
    @PostMapping("/page")
    public Result<Page<Admin>> getAdminByPage(@RequestBody Page<Admin> page) {
        return service.getByPage(page);
    }
}


